Update to Linux 2.6.16-rc2.
authorcl349@firebug.cl.cam.ac.uk <cl349@firebug.cl.cam.ac.uk>
Fri, 3 Feb 2006 17:49:27 +0000 (17:49 +0000)
committercl349@firebug.cl.cam.ac.uk <cl349@firebug.cl.cam.ac.uk>
Fri, 3 Feb 2006 17:49:27 +0000 (17:49 +0000)
Signed-off-by: Christian Limpach <Christian.Limpach@cl.cam.ac.uk>
26 files changed:
buildconfigs/linux-defconfig_xen0_x86_32
buildconfigs/linux-defconfig_xen0_x86_64
buildconfigs/linux-defconfig_xenU_x86_32
buildconfigs/linux-defconfig_xenU_x86_64
buildconfigs/linux-defconfig_xen_x86_32
buildconfigs/linux-defconfig_xen_x86_64
buildconfigs/mk.linux-2.6-xen
linux-2.6-xen-sparse/arch/i386/Kconfig
linux-2.6-xen-sparse/arch/i386/kernel/acpi/Makefile
linux-2.6-xen-sparse/arch/i386/kernel/acpi/boot-xen.c
linux-2.6-xen-sparse/arch/i386/kernel/mpparse-xen.c
linux-2.6-xen-sparse/arch/i386/pci/irq-xen.c
linux-2.6-xen-sparse/arch/um/kernel/physmem.c
linux-2.6-xen-sparse/arch/x86_64/ia32/ia32entry-xen.S
linux-2.6-xen-sparse/arch/x86_64/kernel/acpi/Makefile
linux-2.6-xen-sparse/arch/x86_64/kernel/io_apic-xen.c
linux-2.6-xen-sparse/arch/x86_64/kernel/mpparse-xen.c
linux-2.6-xen-sparse/drivers/acpi/Kconfig
linux-2.6-xen-sparse/drivers/serial/Kconfig
linux-2.6-xen-sparse/fs/Kconfig
linux-2.6-xen-sparse/include/asm-i386/mach-xen/asm/page.h
linux-2.6-xen-sparse/lib/Makefile
linux-2.6-xen-sparse/mm/memory.c
linux-2.6-xen-sparse/mm/page_alloc.c
linux-2.6-xen-sparse/net/core/dev.c
linux-2.6-xen-sparse/net/core/skbuff.c

index 948cd31ed2ff979ddab32e2d7869c4ab0649e6a8..37b3cf38bcc880db3b66f8612c4dbe68a6ba605a 100644 (file)
@@ -1,7 +1,7 @@
 #
 # Automatically generated make config: don't edit
-# Linux kernel version: 2.6.16-rc1-git4-xen0
-# Thu Feb  2 18:19:17 2006
+# Linux kernel version: 2.6.16-rc2-xen0
+# Fri Feb  3 16:57:06 2006
 #
 CONFIG_X86_32=y
 CONFIG_SEMAPHORE_SLEEPERS=y
@@ -160,6 +160,11 @@ CONFIG_SWIOTLB=y
 # CONFIG_NOHIGHMEM is not set
 CONFIG_HIGHMEM4G=y
 # CONFIG_HIGHMEM64G is not set
+CONFIG_VMSPLIT_3G=y
+# CONFIG_VMSPLIT_3G_OPT is not set
+# CONFIG_VMSPLIT_2G is not set
+# CONFIG_VMSPLIT_1G is not set
+CONFIG_PAGE_OFFSET=0xC0000000
 CONFIG_HIGHMEM=y
 CONFIG_SELECT_MEMORY_MODEL=y
 CONFIG_FLATMEM_MANUAL=y
@@ -589,10 +594,12 @@ CONFIG_DM_MIRROR=y
 #
 # Fusion MPT device support
 #
-# CONFIG_FUSION is not set
-# CONFIG_FUSION_SPI is not set
+CONFIG_FUSION=y
+CONFIG_FUSION_SPI=y
 # CONFIG_FUSION_FC is not set
 # CONFIG_FUSION_SAS is not set
+CONFIG_FUSION_MAX_SGE=128
+# CONFIG_FUSION_CTL is not set
 
 #
 # IEEE 1394 (FireWire) support
index 7b8651bee5d07ec3260c64cad56114307275695a..8070aac2deb9d6e2326ffc0203465c6988030a6b 100644 (file)
@@ -1,7 +1,7 @@
 #
 # Automatically generated make config: don't edit
-# Linux kernel version: 2.6.16-rc1-git4
-# Thu Feb  2 17:51:17 2006
+# Linux kernel version: 2.6.16-rc2-xen0
+# Fri Feb  3 16:53:41 2006
 #
 CONFIG_X86_64=y
 CONFIG_64BIT=y
@@ -529,10 +529,12 @@ CONFIG_DM_MULTIPATH_EMC=y
 #
 # Fusion MPT device support
 #
-# CONFIG_FUSION is not set
-# CONFIG_FUSION_SPI is not set
+CONFIG_FUSION=y
+CONFIG_FUSION_SPI=y
 # CONFIG_FUSION_FC is not set
 # CONFIG_FUSION_SAS is not set
+CONFIG_FUSION_MAX_SGE=128
+# CONFIG_FUSION_CTL is not set
 
 #
 # IEEE 1394 (FireWire) support
index d3307b773d8ce46d6b24a0d39640a528fc553159..66e2291c72186c9b27ed1d6e79c53e930dab1f59 100644 (file)
@@ -1,7 +1,7 @@
 #
 # Automatically generated make config: don't edit
-# Linux kernel version: 2.6.16-rc1-git4-xenU
-# Thu Feb  2 18:28:58 2006
+# Linux kernel version: 2.6.16-rc2-xenU
+# Fri Feb  3 16:57:27 2006
 #
 CONFIG_X86_32=y
 CONFIG_SEMAPHORE_SLEEPERS=y
@@ -159,6 +159,11 @@ CONFIG_X86_CPUID=y
 # CONFIG_NOHIGHMEM is not set
 CONFIG_HIGHMEM4G=y
 # CONFIG_HIGHMEM64G is not set
+CONFIG_VMSPLIT_3G=y
+# CONFIG_VMSPLIT_3G_OPT is not set
+# CONFIG_VMSPLIT_2G is not set
+# CONFIG_VMSPLIT_1G is not set
+CONFIG_PAGE_OFFSET=0xC0000000
 CONFIG_HIGHMEM=y
 CONFIG_SELECT_MEMORY_MODEL=y
 CONFIG_FLATMEM_MANUAL=y
index b80f5ecc803ccfdbfcce79eb7297386b108eabd7..3b1e706cc5e5b8f32f8a009ede11fcd5973de088 100644 (file)
@@ -1,7 +1,7 @@
 #
 # Automatically generated make config: don't edit
-# Linux kernel version: 2.6.16-rc1-git4
-# Thu Feb  2 17:50:11 2006
+# Linux kernel version: 2.6.16-rc2-xenU
+# Fri Feb  3 16:30:13 2006
 #
 CONFIG_X86_64=y
 CONFIG_64BIT=y
@@ -735,7 +735,6 @@ CONFIG_VXFS_FS=m
 CONFIG_QNX4FS_FS=m
 CONFIG_SYSV_FS=m
 CONFIG_UFS_FS=m
-# CONFIG_UFS_FS_WRITE is not set
 
 #
 # Network File Systems
index 174772d881cba10fda5542e58182dc031674e4c5..0bae9810a65f20d5fc524e36764d555fada63266 100644 (file)
@@ -1,7 +1,7 @@
 #
 # Automatically generated make config: don't edit
-# Linux kernel version: 2.6.16-rc1-git4-xen
-# Thu Feb  2 18:43:06 2006
+# Linux kernel version: 2.6.16-rc2-xen
+# Fri Feb  3 16:57:47 2006
 #
 CONFIG_X86_32=y
 CONFIG_SEMAPHORE_SLEEPERS=y
@@ -166,6 +166,11 @@ CONFIG_DCDBAS=m
 # CONFIG_NOHIGHMEM is not set
 CONFIG_HIGHMEM4G=y
 # CONFIG_HIGHMEM64G is not set
+CONFIG_VMSPLIT_3G=y
+# CONFIG_VMSPLIT_3G_OPT is not set
+# CONFIG_VMSPLIT_2G is not set
+# CONFIG_VMSPLIT_1G is not set
+CONFIG_PAGE_OFFSET=0xC0000000
 CONFIG_HIGHMEM=y
 CONFIG_SELECT_MEMORY_MODEL=y
 CONFIG_FLATMEM_MANUAL=y
@@ -1222,7 +1227,6 @@ CONFIG_IEEE1394_RAWIO=m
 CONFIG_I2O=m
 CONFIG_I2O_LCT_NOTIFY_ON_CHANGES=y
 CONFIG_I2O_EXT_ADAPTEC=y
-# CONFIG_I2O_EXT_ADAPTEC_DMA64 is not set
 CONFIG_I2O_CONFIG=m
 CONFIG_I2O_CONFIG_OLD_IOCTL=y
 CONFIG_I2O_BUS=m
@@ -2494,6 +2498,7 @@ CONFIG_USB_MICROTEK=m
 # CONFIG_USB_DABUSB is not set
 CONFIG_USB_VICAM=m
 CONFIG_USB_DSBR=m
+CONFIG_USB_ET61X251=m
 CONFIG_USB_IBMCAM=m
 CONFIG_USB_KONICAWC=m
 CONFIG_USB_OV511=m
index 20f898564464470769e302373ab4a2ee67f93e7e..249dfea07f9db0b25f0c006932c66d4c00c6accb 100644 (file)
@@ -1,7 +1,7 @@
 #
 # Automatically generated make config: don't edit
-# Linux kernel version: 2.6.16-rc1-git4
-# Thu Feb  2 17:54:57 2006
+# Linux kernel version: 2.6.16-rc2-xen
+# Fri Feb  3 16:30:34 2006
 #
 CONFIG_X86_64=y
 CONFIG_64BIT=y
@@ -2195,6 +2195,7 @@ CONFIG_USB_MICROTEK=m
 CONFIG_USB_DABUSB=m
 CONFIG_USB_VICAM=m
 CONFIG_USB_DSBR=m
+CONFIG_USB_ET61X251=m
 CONFIG_USB_IBMCAM=m
 CONFIG_USB_KONICAWC=m
 CONFIG_USB_OV511=m
index 064dd7db6058ed32b7f5f8dab12377ca0ca1bd09..61f83e05b112998bdb4d9a05caed9d57b34850fb 100644 (file)
@@ -2,8 +2,8 @@
 OS           = linux
 
 LINUX_SERIES = 2.6
-LINUX_VER    = 2.6.16-rc1-git4
-LINUX_SRCS = linux-2.6.15.tar.bz2 patch-2.6.16-rc1.bz2 patch-2.6.16-rc1-git4.bz2
+LINUX_VER    = 2.6.16-rc2
+LINUX_SRCS = linux-2.6.15.tar.bz2 patch-2.6.16-rc2.bz2
 LINUX_PDIR = linux-$(LINUX_VER)
 
 EXTRAVERSION ?= xen
@@ -33,7 +33,7 @@ pristine-$(LINUX_PDIR)/.valid-srcs: $(LINUX_SRCS)
        touch $(@D)/.hgskip
        touch $@
 
-pristine-linux-%.16-rc1-git4/.valid-pristine: pristine-$(LINUX_PDIR)/.valid-srcs
+pristine-linux-%.16-rc2/.valid-pristine: pristine-$(LINUX_PDIR)/.valid-srcs
        touch $@ # update timestamp to avoid rebuild
 
 $(LINUX_DIR)/include/linux/autoconf.h: ref-$(OS)-$(LINUX_VER)/.valid-ref
index 516072ae57094f430d1a4c0c18f1f0b4ee0fbd27..bb303ccf18c9072c2ba9c70fef1173dc5cd69dab 100644 (file)
@@ -47,16 +47,6 @@ config DMI
 
 source "init/Kconfig"
 
-config DOUBLEFAULT
-       default y
-       bool "Enable doublefault exception handler" if EMBEDDED
-       depends on !XEN
-       help
-          This option allows trapping of rare doublefault exceptions that
-          would otherwise cause a system to silently reboot. Disabling this
-          option saves about 4k and might cause you much additional grey
-          hair.
-
 menu "Processor type and features"
 
 choice
@@ -492,6 +482,43 @@ config HIGHMEM64G
 
 endchoice
 
+choice
+       depends on EXPERIMENTAL && !X86_PAE
+       prompt "Memory split"
+       default VMSPLIT_3G
+       help
+         Select the desired split between kernel and user memory.
+
+         If the address range available to the kernel is less than the
+         physical memory installed, the remaining memory will be available
+         as "high memory". Accessing high memory is a little more costly
+         than low memory, as it needs to be mapped into the kernel first.
+         Note that increasing the kernel address space limits the range
+         available to user programs, making the address space there
+         tighter.  Selecting anything other than the default 3G/1G split
+         will also likely make your kernel incompatible with binary-only
+         kernel modules.
+
+         If you are not absolutely sure what you are doing, leave this
+         option alone!
+
+       config VMSPLIT_3G
+               bool "3G/1G user/kernel split"
+       config VMSPLIT_3G_OPT
+               bool "3G/1G user/kernel split (for full 1G low memory)"
+       config VMSPLIT_2G
+               bool "2G/2G user/kernel split"
+       config VMSPLIT_1G
+               bool "1G/3G user/kernel split"
+endchoice
+
+config PAGE_OFFSET
+       hex
+       default 0xB0000000 if VMSPLIT_3G_OPT
+       default 0x78000000 if VMSPLIT_2G
+       default 0x40000000 if VMSPLIT_1G
+       default 0xC0000000
+
 config HIGHMEM
        bool
        depends on HIGHMEM64G || HIGHMEM4G
@@ -749,6 +776,16 @@ config HOTPLUG_CPU
 
          Say N.
 
+config DOUBLEFAULT
+       default y
+       bool "Enable doublefault exception handler" if EMBEDDED
+       depends on !XEN
+       help
+          This option allows trapping of rare doublefault exceptions that
+          would otherwise cause a system to silently reboot. Disabling this
+          option saves about 4k and might cause you much additional grey
+          hair.
+
 endmenu
 
 
index 8760196122c433a1d2a49f2d4f0a6f8e5859a3ba..fdd8ee749c8ecfa4800612691b24151397d40f9d 100644 (file)
@@ -3,7 +3,7 @@ obj-$(CONFIG_X86_IO_APIC)       += earlyquirk.o
 obj-$(CONFIG_ACPI_SLEEP)       += sleep.o wakeup.o
 
 ifneq ($(CONFIG_ACPI_PROCESSOR),)
-obj-y                          += cstate.o
+obj-y                          += cstate.o processor.o
 endif
 
 ifdef CONFIG_XEN
index 68fcc76928cd6e0e292b84bff7099ea0e894613a..b292df0c5264893662ae406a4acfa2897b1b8c72 100644 (file)
@@ -466,7 +466,7 @@ int acpi_gsi_to_irq(u32 gsi, unsigned int *irq)
  * success: return IRQ number (>=0)
  * failure: return < 0
  */
-int acpi_register_gsi(u32 gsi, int edge_level, int active_high_low)
+int acpi_register_gsi(u32 gsi, int triggering, int polarity)
 {
        unsigned int irq;
        unsigned int plat_gsi = gsi;
@@ -478,14 +478,14 @@ int acpi_register_gsi(u32 gsi, int edge_level, int active_high_low)
        if (acpi_irq_model == ACPI_IRQ_MODEL_PIC) {
                extern void eisa_set_level_irq(unsigned int irq);
 
-               if (edge_level == ACPI_LEVEL_SENSITIVE)
+               if (triggering == ACPI_LEVEL_SENSITIVE)
                        eisa_set_level_irq(gsi);
        }
 #endif
 
 #ifdef CONFIG_X86_IO_APIC
        if (acpi_irq_model == ACPI_IRQ_MODEL_IOAPIC) {
-               plat_gsi = mp_register_gsi(gsi, edge_level, active_high_low);
+               plat_gsi = mp_register_gsi(gsi, triggering, polarity);
        }
 #endif
        acpi_gsi_to_irq(plat_gsi, &irq);
index ed43c988116a5be382473383f98884c8cb6da246..9b2c9de2205191f6897cf0127ddae27d1b3fe825 100644 (file)
@@ -1097,7 +1097,7 @@ void __init mp_config_acpi_legacy_irqs (void)
 
 #define MAX_GSI_NUM    4096
 
-int mp_register_gsi (u32 gsi, int edge_level, int active_high_low)
+int mp_register_gsi (u32 gsi, int triggering, int polarity)
 {
        int                     ioapic = -1;
        int                     ioapic_pin = 0;
@@ -1146,7 +1146,7 @@ int mp_register_gsi (u32 gsi, int edge_level, int active_high_low)
 
        mp_ioapic_routing[ioapic].pin_programmed[idx] |= (1<<bit);
 
-       if (edge_level) {
+       if (triggering == ACPI_LEVEL_SENSITIVE) {
                /*
                 * For PCI devices assign IRQs in order, avoiding gaps
                 * due to unused I/O APIC pins.
@@ -1168,8 +1168,8 @@ int mp_register_gsi (u32 gsi, int edge_level, int active_high_low)
        }
 
        io_apic_set_pci_routing(ioapic, ioapic_pin, gsi,
-                   edge_level == ACPI_EDGE_SENSITIVE ? 0 : 1,
-                   active_high_low == ACPI_ACTIVE_HIGH ? 0 : 1);
+                   triggering == ACPI_EDGE_SENSITIVE ? 0 : 1,
+                   polarity == ACPI_ACTIVE_HIGH ? 0 : 1);
        return gsi;
 }
 
index db0b6d12320cc896ccd5f31ee4c5213419675d79..80e0b189f80a6601a6f0f0232dae463ca3c774a9 100644 (file)
@@ -542,6 +542,11 @@ static __init int intel_router_probe(struct irq_router *r, struct pci_dev *route
                case PCI_DEVICE_ID_INTEL_ICH7_30:
                case PCI_DEVICE_ID_INTEL_ICH7_31:
                case PCI_DEVICE_ID_INTEL_ESB2_0:
+               case PCI_DEVICE_ID_INTEL_ICH8_0:
+               case PCI_DEVICE_ID_INTEL_ICH8_1:
+               case PCI_DEVICE_ID_INTEL_ICH8_2:
+               case PCI_DEVICE_ID_INTEL_ICH8_3:
+               case PCI_DEVICE_ID_INTEL_ICH8_4:
                        r->name = "PIIX/ICH";
                        r->get = pirq_piix_get;
                        r->set = pirq_piix_set;
index 7958a2791e0bda61a2f1c33a9662f480107a1743..dece10dd3b6d1619c76c34d915249cafb265b8b0 100644 (file)
@@ -267,7 +267,7 @@ int init_maps(unsigned long physmem, unsigned long iomem, unsigned long highmem)
        highmem_len = highmem_pages * sizeof(struct page);
 
        total_pages = phys_pages + iomem_pages + highmem_pages;
-       total_len = phys_len + iomem_pages + highmem_len;
+       total_len = phys_len + iomem_len + highmem_len;
 
        if(kmalloc_ok){
                map = kmalloc(total_len, GFP_KERNEL);
index 0954e35d031a6dc8f0c5bbd2e51b502438a268ef..271f530fd6cd20c82abcb201908c3ab577ba130f 100644 (file)
@@ -703,7 +703,7 @@ ia32_sys_call_table:
        .quad sys_mkdirat
        .quad sys_mknodat
        .quad sys_fchownat
-       .quad sys_futimesat
+       .quad compat_sys_futimesat
        .quad compat_sys_newfstatat     /* 300 */
        .quad sys_unlinkat
        .quad sys_renameat
index 0468bcb140b3fc48c74b4f5931624d3f9e6254b2..aa84f6eb98c9dfd575ccd8cbb593642132be7799 100644 (file)
@@ -2,4 +2,8 @@ obj-y                   := boot.o
 boot-y                 := ../../../i386/kernel/acpi/boot.o
 obj-$(CONFIG_ACPI_SLEEP)       += sleep.o wakeup.o
 
+ifneq ($(CONFIG_ACPI_PROCESSOR),)
+obj-y                  += processor.o
+endif
+
 boot-$(CONFIG_XEN)             := ../../../i386/kernel/acpi/boot-xen.o
index e78f83a0fb13648cbbda0160853e8cd59112f406..ed8f71c8d1fcce61e026d824ccd4f2ee8ef49ea2 100644 (file)
@@ -2105,7 +2105,7 @@ int __init io_apic_get_redir_entries (int ioapic)
 }
 
 
-int io_apic_set_pci_routing (int ioapic, int pin, int irq, int edge_level, int active_high_low)
+int io_apic_set_pci_routing (int ioapic, int pin, int irq, int triggering, int polarity)
 {
        struct IO_APIC_route_entry entry;
        unsigned long flags;
@@ -2127,8 +2127,8 @@ int io_apic_set_pci_routing (int ioapic, int pin, int irq, int edge_level, int a
        entry.delivery_mode = INT_DELIVERY_MODE;
        entry.dest_mode = INT_DEST_MODE;
        entry.dest.logical.logical_dest = cpu_mask_to_apicid(TARGET_CPUS);
-       entry.trigger = edge_level;
-       entry.polarity = active_high_low;
+       entry.trigger = triggering;
+       entry.polarity = polarity;
        entry.mask = 1;                                  /* Disabled (masked) */
 
        irq = gsi_irq_sharing(irq);
@@ -2143,9 +2143,9 @@ int io_apic_set_pci_routing (int ioapic, int pin, int irq, int edge_level, int a
        apic_printk(APIC_VERBOSE,KERN_DEBUG "IOAPIC[%d]: Set PCI routing entry (%d-%d -> 0x%x -> "
                "IRQ %d Mode:%i Active:%i)\n", ioapic, 
               mp_ioapics[ioapic].mpc_apicid, pin, entry.vector, irq,
-              edge_level, active_high_low);
+              triggering, polarity);
 
-       ioapic_register_intr(irq, entry.vector, edge_level);
+       ioapic_register_intr(irq, entry.vector, triggering);
 
        if (!ioapic && (irq < 16))
                disable_8259A_irq(irq);
index c2338421014168594bed09efe130724f034a260c..4a95cb20ca2640882eb122993cdbb731e1981201 100644 (file)
@@ -920,7 +920,7 @@ void __init mp_config_acpi_legacy_irqs (void)
 
 #define MAX_GSI_NUM    4096
 
-int mp_register_gsi(u32 gsi, int edge_level, int active_high_low)
+int mp_register_gsi(u32 gsi, int triggering, int polarity)
 {
        int                     ioapic = -1;
        int                     ioapic_pin = 0;
@@ -969,7 +969,7 @@ int mp_register_gsi(u32 gsi, int edge_level, int active_high_low)
 
        mp_ioapic_routing[ioapic].pin_programmed[idx] |= (1<<bit);
 
-       if (edge_level) {
+       if (triggering == ACPI_LEVEL_SENSITIVE) {
                /*
                 * For PCI devices assign IRQs in order, avoiding gaps
                 * due to unused I/O APIC pins.
@@ -991,8 +991,8 @@ int mp_register_gsi(u32 gsi, int edge_level, int active_high_low)
        }
 
        io_apic_set_pci_routing(ioapic, ioapic_pin, gsi,
-               edge_level == ACPI_EDGE_SENSITIVE ? 0 : 1,
-               active_high_low == ACPI_ACTIVE_HIGH ? 0 : 1);
+               triggering == ACPI_EDGE_SENSITIVE ? 0 : 1,
+               polarity == ACPI_ACTIVE_HIGH ? 0 : 1);
        return gsi;
 }
 
index d47e28d0ad92924348a2c3963a32f8cf24a88e78..4c0c27c3ce2ad814fd15cd5276c37190e2e84136 100644 (file)
@@ -267,7 +267,6 @@ config ACPI_DEBUG
 
 config ACPI_EC
        bool
-       depends on X86
        default y
        help
          This driver is required on some systems for the proper operation of
index d5efe22936c4d4f480c32a6a8a91c386cd2e1406..6a501a52101d29d91005cba5112190b89ba641ef 100644 (file)
@@ -24,7 +24,7 @@ config SERIAL_8250
          work.)
 
          To compile this driver as a module, choose M here: the
-         module will be called serial.
+         module will be called 8250.
          [WARNING: Do not compile this driver as a module if you are using
          non-standard serial ports, since the configuration information will
          be lost when the driver is unloaded.  This limitation may be lifted
index e1706b000ca41ea1aded88ba189d1ef859cfec78..12bd891c085ac5b51605aa4ebc1c5d589cc7bb7f 100644 (file)
@@ -1328,7 +1328,7 @@ config UFS_FS
 
 config UFS_FS_WRITE
        bool "UFS file system write support (DANGEROUS)"
-       depends on UFS_FS && EXPERIMENTAL
+       depends on UFS_FS && EXPERIMENTAL && BROKEN
        help
          Say Y here if you want to try writing to UFS partitions. This is
          experimental, so you should back up your UFS partitions beforehand.
index 9b147620e560b53d3f119d9d00775bbd1cc90463..476ca434c709815793cb3866d33a96203f9bf7da 100644 (file)
@@ -280,10 +280,10 @@ extern int page_is_ram(unsigned long pagenr);
 #endif /* __ASSEMBLY__ */
 
 #ifdef __ASSEMBLY__
-#define __PAGE_OFFSET          (0xC0000000)
+#define __PAGE_OFFSET          CONFIG_PAGE_OFFSET
 #define __PHYSICAL_START       CONFIG_PHYSICAL_START
 #else
-#define __PAGE_OFFSET          (0xC0000000UL)
+#define __PAGE_OFFSET          ((unsigned long)CONFIG_PAGE_OFFSET)
 #define __PHYSICAL_START       ((unsigned long)CONFIG_PHYSICAL_START)
 #endif
 #define __KERNEL_START         (__PAGE_OFFSET + __PHYSICAL_START)
index 0db79f11f699212602bb650acb8b8609c3508413..21cf76f4e4b30001072870e58e0a7d0dedab656a 100644 (file)
@@ -9,7 +9,7 @@ lib-y := errno.o ctype.o string.o vsprintf.o cmdline.o \
 
 lib-y  += kobject.o kref.o kobject_uevent.o klist.o
 
-obj-y += sort.o parser.o halfmd4.o
+obj-y += sort.o parser.o halfmd4.o iomap_copy.o
 
 ifeq ($(CONFIG_DEBUG_KOBJECT),y)
 CFLAGS_kobject.o += -DDEBUG
index 14ca5c00d499064c83b5eaa2217dfb913434e9b1..25a2e2939089d326ceba13503cc95ca6e786728a 100644 (file)
@@ -1987,6 +1987,7 @@ static int do_swap_page(struct mm_struct *mm, struct vm_area_struct *vma,
                goto out;
 
        entry = pte_to_swp_entry(orig_pte);
+again:
        page = lookup_swap_cache(entry);
        if (!page) {
                swapin_readahead(entry, address, vma);
@@ -2010,6 +2011,12 @@ static int do_swap_page(struct mm_struct *mm, struct vm_area_struct *vma,
 
        mark_page_accessed(page);
        lock_page(page);
+       if (!PageSwapCache(page)) {
+               /* Page migration has occured */
+               unlock_page(page);
+               page_cache_release(page);
+               goto again;
+       }
 
        /*
         * Back out if somebody else already faulted in this pte.
index 75f178a4d5e9fbe16a7a9ff8166f7cc81b186ea9..1fdf09444eb0380de6eb8fef81dbf7c20e8d1fe8 100644 (file)
@@ -1801,7 +1801,7 @@ void zonetable_add(struct zone *zone, int nid, int zid, unsigned long pfn,
        memmap_init_zone((size), (nid), (zone), (start_pfn))
 #endif
 
-static int __meminit zone_batchsize(struct zone *zone)
+static int __cpuinit zone_batchsize(struct zone *zone)
 {
        int batch;
 
@@ -1895,7 +1895,7 @@ static struct per_cpu_pageset
  * Dynamically allocate memory for the
  * per cpu pageset array in struct zone.
  */
-static int __meminit process_zones(int cpu)
+static int __cpuinit process_zones(int cpu)
 {
        struct zone *zone, *dzone;
 
@@ -1936,7 +1936,7 @@ static inline void free_zone_pagesets(int cpu)
        }
 }
 
-static int __meminit pageset_cpuup_callback(struct notifier_block *nfb,
+static int __cpuinit pageset_cpuup_callback(struct notifier_block *nfb,
                unsigned long action,
                void *hcpu)
 {
index bf4452e1fe1c14f8dababddb5aa0ab5181342427..dfd9ff6e71b7946067926913ffde2e3af5eb5d92 100644 (file)
@@ -2593,13 +2593,14 @@ int dev_ioctl(unsigned int cmd, void __user *arg)
                case SIOCBONDENSLAVE:
                case SIOCBONDRELEASE:
                case SIOCBONDSETHWADDR:
-               case SIOCBONDSLAVEINFOQUERY:
-               case SIOCBONDINFOQUERY:
                case SIOCBONDCHANGEACTIVE:
                case SIOCBRADDIF:
                case SIOCBRDELIF:
                        if (!capable(CAP_NET_ADMIN))
                                return -EPERM;
+                       /* fall through */
+               case SIOCBONDSLAVEINFOQUERY:
+               case SIOCBONDINFOQUERY:
                        dev_load(ifr.ifr_name);
                        rtnl_lock();
                        ret = dev_ifsioc(&ifr, cmd);
index 976e5ab1dfcb5df1e7703d6258f2715cdfe2a1eb..e75510a1fbb8c02192b363b4ed93846b67c28428 100644 (file)
@@ -136,13 +136,15 @@ void skb_under_panic(struct sk_buff *skb, int sz, void *here)
 struct sk_buff *__alloc_skb(unsigned int size, gfp_t gfp_mask,
                            int fclone)
 {
+       kmem_cache_t *cache;
        struct skb_shared_info *shinfo;
        struct sk_buff *skb;
        u8 *data;
 
+       cache = fclone ? skbuff_fclone_cache : skbuff_head_cache;
+
        /* Get the HEAD */
-       skb = kmem_cache_alloc(fclone ? skbuff_fclone_cache : skbuff_head_cache,
-                               gfp_mask & ~__GFP_DMA);
+       skb = kmem_cache_alloc(cache, gfp_mask & ~__GFP_DMA);
        if (!skb)
                goto out;
 
@@ -181,7 +183,7 @@ struct sk_buff *__alloc_skb(unsigned int size, gfp_t gfp_mask,
 out:
        return skb;
 nodata:
-       kmem_cache_free(fclone ? skbuff_fclone_cache : skbuff_head_cache, skb);
+       kmem_cache_free(cache, skb);
        skb = NULL;
        goto out;
 }
@@ -206,13 +208,15 @@ struct sk_buff *alloc_skb_from_cache(kmem_cache_t *cp,
                                     gfp_t gfp_mask,
                                     int fclone)
 {
+       kmem_cache_t *cache;
        struct skb_shared_info *shinfo;
        struct sk_buff *skb;
        u8 *data;
 
+       cache = fclone ? skbuff_fclone_cache : skbuff_head_cache;
+
        /* Get the HEAD */
-       skb = kmem_cache_alloc(fclone ? skbuff_fclone_cache : skbuff_head_cache,
-                               gfp_mask & ~__GFP_DMA);
+       skb = kmem_cache_alloc(cache, gfp_mask & ~__GFP_DMA);
        if (!skb)
                goto out;
 
@@ -251,7 +255,7 @@ struct sk_buff *alloc_skb_from_cache(kmem_cache_t *cp,
 out:
        return skb;
 nodata:
-       kmem_cache_free(fclone ? skbuff_fclone_cache : skbuff_head_cache, skb);
+       kmem_cache_free(cache, skb);
        skb = NULL;
        goto out;
 }